package MAIN;
//笔试强训第12天
//选择题
/*HashMap是以计算哈希值然后以哈希值为下标来存储数据的，所以是不能保证顺序的*/
/*Hashmap是允许键或者值为null的，但是必须保证键（key）是唯一的*/
/*无修饰符（默认就是包访问权限），protected权限只有继承自这个类的子类可以进行访问*/
/*接口的方法修饰只能是public abstract，因为接口中的方法是必须要被重写的*/
/*FileNotFoundException是受查异常，在编译时期必须要声明的*/
/*接口中是可以有具体的方法的，也可以有抽象方法的，抽象方法是不能写方法体的，就是{}是不能写的*/
/*在方法进行传参的时候，形参会有一个对实参的拷贝，所以对形参进行运算不会改变实参的值*/

import java.util.Scanner;

//编程题
public class Main12 {
    //二进制插入
    //思路：先将m的二进制位右移j位，然后n和m进行或运算，0|0 = 0；1|0 = 1
    public int binInsert(int n, int m, int j, int i) {
        // write code here
        //m右移j位
        m >>= j;
        //m和n进行按位或运算（因为已经保证i到j位的二进制位都是0）
        n |= m;
        return n;
    }
    public static void main(String[] args) {
        //查找组成一个偶数最接近的两个素数
        //1.两个数都必须是素数
        //2.差值最小：从中间开始求解
        Scanner scan = new Scanner(System.in);
        while (scan.hasNextInt()) {
            int num = scan.nextInt();
            //从中间开始求解
            int half = num / 2;
            //从中间开始判断两边是否是素数
            for (int i = half; i < num; i++) {
                if (isPrime(i) && isPrime(num - i)) {
                    System.out.println((num-i));
                    System.out.println(i);
                    break;
                }
            }
        }
    }
    //判断是否是素数
    public static boolean isPrime(int num) {
        for (int i = 2 ; i < num; i++) {
            if (num % i == 0) {
                return false;
            }
        }
        return true;
    }
}
